home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 076-100 / 092 / shar / sh.doc < prev    next >
Text File  |  1995-03-13  |  3KB  |  88 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                         Sh: Unpack Files from Shell Archive
  8.                                         by
  9.                                Fabbian G. Dufoe, III
  10.  
  11.  
  12.  
  13.           INTRODUCTION
  14.  
  15.                Sh is a program designed to unpack shell archives created
  16.           with my Shar program.  It works by recognizing the "cat" and
  17.           "echo" commands and by correctly processing quoted strings, >
  18.           (standard output redirection), and << ("here document"
  19.           redirection).  It does not rely on the existence of any external
  20.           programs.
  21.  
  22.                The shell archive is a technique which makes it easier to
  23.           manipulate collections of related files.  To create a shell
  24.           archive file two or more files are concatenated into a single
  25.           file.  Shell commands are interspersed with the original files.
  26.           That is called packing.  When a command processor reads the shell
  27.           archive file the shell commands cause it to create the original
  28.           files.  That is called unpacking.
  29.  
  30.                The simplest program to pack a shell archive might work by
  31.           prefixing the file with "cat > file <<string" where "file" is the
  32.           name of the file and "string" is a character string which won't
  33.           occur in the file itself.  Next the program copies the text of the
  34.           file.  Finally, it writes a line beginning with "string".
  35.  
  36.                A nicer version would write "echo Creating file" before the
  37.           "cat" command.  Then the shell will report on its progress as it
  38.           unpacks the files.  that is how my Shar program works.  A lot of
  39.           programs pack shell archives essentially the same way but include
  40.           other commands to provide additional enhancements.  Because Sh
  41.           ignores any commands except "echo" and "cat" it will handle those
  42.           files correctly, although it does not support the added features.
  43.           it will not handle files which rely on commands like "sed" for
  44.           unpacking.
  45.  
  46.  
  47.           EXECUTION
  48.  
  49.                To run Sh type "Sh file" where "file" is the name of the
  50.           shell archive file to be unpacked.  If the shell archive file is
  51.           not in the current directory it can be located by either a
  52.           relative or absolute path name.  The unpacked files will be
  53.           located relative to the current directory unless they have
  54.           absolute path names.  There are no command line options.
  55.  
  56.  
  57.           SUMMARY OF EXECUTION
  58.  
  59.                Sh reads the shell archive file until it encounters a line
  60.           beginning with "echo" or "cat".  If the line begins with "echo" Sh
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.           writes the rest of the line to standard output.
  74.  
  75.                If the line begins with "cat" the processing is more
  76.           complicated.  The program checks for ">" or "<<".  If it finds ">"
  77.           it uses the following word as a file name to open for writing.  If
  78.           it finds "<<" it remembers the following string as a terminator.
  79.  
  80.                Once the "cat" command line has been parsed Sh goes into
  81.           "copy" mode.  It reads a line from the file.  If the line doesn't
  82.           match the terminator string Sh writes it to the output file.  When
  83.           the terminator string is encountered it closes the output file and
  84.           leave "copy" mode.
  85.  
  86.                When Sh encounters end of file it closes its input file and
  87.           terminates.
  88.